package com.ada.spark.rddoperator

import org.apache.spark.{SparkConf, SparkContext}

/**
  * 作用：笛卡尔积（尽量避免使用）
  */
object Spark17_cartesian {

    def main(args: Array[String]): Unit = {
        //创建SparkConf
        val conf = new SparkConf().setAppName("Spark17_cartesian").setMaster("local[*]")
        //创建Spark上下文对象
        val sc = new SparkContext(conf)

        val rdd1 = sc.parallelize(1 to 3)

        val rdd2 = sc.parallelize(2 to 5)

        //笛卡尔积（尽量避免使用）
        //创建两个RDD，计算两个RDD的笛卡尔积
        val rdd3 = rdd1.cartesian(rdd2)

        println(rdd3.collect().mkString(","))
        //(1,2),(1,3),(1,4),(1,5),(2,2),(2,3),(2,4),(2,5),(3,2),(3,3),(3,4),(3,5)
    }

}
